package com.amtf.datafile3;

public interface DataRecordParser<RECORD_TYPE, FIELD_TYPE> {
	public DataRecordParser<RECORD_TYPE, FIELD_TYPE> clone();

	public void resetColumnLike(DataTableDefinition fromDefinition, DataTableDefinition toDefinition);

	public DataRecord parse(DataTableDefinition definition, DataRecord record) throws DataException;

	public DataRecord parse(DataTableDefinition definition, RECORD_TYPE record) throws DataException;

	public DataRecord parse(DataTableDefinition definition, FIELD_TYPE[] recordFields) throws DataException;

	public void detectColumn(DataTableDefinition definition, RECORD_TYPE titleRecord, boolean isTitle) throws DataException;

	// public void detectFieldsType(DataTableDefinition definition, Object record) throws DataException;

	// public void detectFieldsDefinition(DataTableDefinition definition, Object record) throws DataException;

	// public void validate(DataRecord record) throws DataException;

}
